iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
自我挑戰組

30天初探tensorflow之旅系列 第 7

Day 07 認識 Eager Execution

  • 分享至 

  • xImage
  •  

在第四文章裡介紹的核心概念中,第二項提到了計算圖和會話,那是TensorFlow 1.0 版本在使用的,前一天介紹的也是1.0版本的用法。而今天要來介紹取代計算圖的 Eager Execution 用到的語法,和其相關觀念。

在TensorFlow 2.0 最新版本中,不再使用會話( tf.Session() ),取而代之的是Eager Execution的功能,它讓張量運算可以立即執行,且不需要先建立計算圖,代碼也更加直觀和易於調整。

1.它可以創建張量並直接進行運算:

x = tf.constant(4)
y = tf.constant(5)
z = x + y
print("z:", z.numpy())

即可得出和為9。

2.它支持部分 Python 的語法,像是 if 語句和 for 循環:

def positive_or_nonpositive(x):
    if x > 0:
        return "Positive"
    else:
        return "Non-positive"
print(positive_or_nonpositive(tf.constant(6)))

6為正數,會輸出Positive。

3.讓自動微分更簡單:

x = tf.Variable(1.0)
with tf.GradientTape() as tape:
    y = x ** 2
dy_dx = tape.gradient(y, x)
print("Gradient:", dy_dx.numpy())

會得到 Gradient: 2.0,不需要再建立計算圖,僅需要簡單的語法就可以算出來。

更新為 Eager Execution 後,不需要親自創建和管理計算圖,讓使用者將心力放在運算本身,而不是運算的結構,也能少學很多東西就上手。


上一篇
Day 06 介紹TensorFlow的基本運算
下一篇
Day 08 關於變數
系列文
30天初探tensorflow之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言